Перейти к основному содержимому

Alter sequence

· 1 мин. чтения

Обычно в Postgre последовательности (sequence) обновляются естественно, но как и в случае с дупликатами, порой иногда хочется одним запросом восстановить правильный максимум .. Сначала я подумал что сработает обычный под-запрос типа

ALTER SEQUENCE sysusers_id_seq RESTART SELECT MAX(id)+1 FROM sysusers ; 

Но как оказалось, последовательности обновлять можно либо статичным рестартом, либо такой функцией.. 

SELECT setval('sysusers_id_seq', (select max(id)+1 from sysusers))+1;

Теперь можно просто продублировать этот запрос для разных таблиц и последовательностей и беззаботно продолжать работу..